// API配置
export const API_CONFIG = {
  baseURL: 'http://192.168.192.147:3000', // 使用你的本机IP地址
  timeout: 30000,
  headers: {
    'Content-Type': 'application/json',
  },
};

// 功能专用服务器配置
export const FUNCTION_SERVERS = {
  // 登录/API请求 - 使用本机IP
  auth: 'http://192.168.192.147:3000',
  // 文件上传 - 使用模拟器IP
  upload: 'http://10.0.2.2:3000',
  // 通用API - 使用本机IP
  api: 'http://192.168.192.147:3000',
};

// 备用服务器列表 - 按优先级排序
export const FALLBACK_SERVERS = [
  'http://192.168.192.147:3000',    // 主要开发服务器（你的本机IP）
  'http://10.0.2.2:3000',           // Android模拟器访问宿主机
  'http://172.20.10.2:3000',        // 备用IP地址
  'http://localhost:3000',           // 本地开发
  'http://127.0.0.1:3000',          // 本地回环
];

// OpenAI配置
export const OPENAI_CONFIG = {
  // OpenAI API密钥
  apiKey: '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',
  // OpenAI API基础URL
  baseURL: 'https://api.openai.com/v1',
  // 默认模型
  defaultModel: 'gpt-3.5-turbo',
  // 最大token数
  maxTokens: 1000,
  // 温度参数 (0-2)
  temperature: 0.7,
  // 超时时间
  timeout: 30000,
};

// 当前环境 - 强制使用开发环境进行测试
export const CURRENT_ENV = 'development'; // 临时强制使用开发环境

// 当前使用的服务器URL
let currentServerURL: string = API_CONFIG.baseURL;

// 获取功能专用服务器地址
export const getFunctionServer = (functionType: 'auth' | 'upload' | 'api'): string => {
  return FUNCTION_SERVERS[functionType];
};

// 获取当前环境的API配置
export const getApiConfig = () => {
  return {
    ...API_CONFIG,
    baseURL: currentServerURL, // 使用动态发现的服务器
  };
};

// 设置当前服务器URL
export const setCurrentServer = (url: string) => {
  currentServerURL = url;
  console.log('🎯 设置当前服务器:', url);
};

// 获取所有可用的服务器
export const getAvailableServers = () => {
  return FALLBACK_SERVERS;
};

// 测试服务器连接
export const testServerConnection = async (url: string): Promise<boolean> => {
  try {
    const controller = new AbortController();
    const timeoutId = setTimeout(() => controller.abort(), 5000);
    
    const response = await fetch(`${url}/sow`, { 
      method: 'GET',
      signal: controller.signal
    });
    
    clearTimeout(timeoutId);
    return response.ok;
  } catch (error) {
    console.log(`❌ 服务器 ${url} 连接失败:`, error);
    return false;
  }
};

// 自动发现可用服务器
export const discoverWorkingServer = async (): Promise<string | null> => {
  console.log('🔍 开始自动发现可用服务器...');
  
  for (const server of FALLBACK_SERVERS) {
    console.log(`🧪 测试服务器: ${server}`);
    if (await testServerConnection(server)) {
      console.log(`✅ 找到可用服务器: ${server}`);
      setCurrentServer(server);
      return server;
    }
  }
  
  console.log('❌ 所有服务器都无法连接');
  return null;
};

// 应用配置
export const APP_CONFIG = {
  // 应用名称
  name: '新能源二手车平台',
  // 版本号
  version: '1.0.0',
  // 支持的最大图片数量
  maxImageCount: 10,
  // 支持的最大视频数量
  maxVideoCount: 5,
  // 图片质量
  imageQuality: 0.8,
  // 视频质量
  videoQuality: 'medium',
  // 上传配置
  upload: {
    maxFileSize: 100 * 1024 * 1024, // 100MB
    chunkSize: 2 * 1024 * 1024,     // 2MB
    timeout: 60000,                  // 60秒
    retryCount: 3,                   // 重试次数
  },
};

// 验证规则
export const VALIDATION_RULES = {
  // 密码最小长度
  passwordMinLength: 6,
  // 密码必须包含大小写字母和数字
  passwordRegex: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/,
  // 邮箱格式
  emailRegex: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
  // 手机号格式（中国）
  phoneRegex: /^1[3-9]\d{9}$/,
};

export default {
  API_CONFIG,
  CURRENT_ENV,
  getApiConfig,
  setCurrentServer,
  getAvailableServers,
  FALLBACK_SERVERS,
  APP_CONFIG,
  VALIDATION_RULES,
}; 